Apache Camel ব্যবহার করে একটি ফাইল ম্যানেজমেন্ট সিস্টেম তৈরি করা একটি চমৎকার উপায় যা আপনাকে ফাইলগুলো পরিচালনা, স্থানান্তর, এবং প্রক্রিয়া করার সক্ষমতা দেয়। নিচে একটি সাধারণ ফাইল ম্যানেজমেন্ট সিস্টেমের ডিজাইন এবং বাস্তবায়ন নিয়ে আলোচনা করা হলো।
প্রথমে একটি Maven প্রকল্প তৈরি করুন:
mvn archetype:generate -DgroupId=com.example.filemanager -DartifactId=file-manager -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
pom.xml
ফাইলে নিম্নলিখিত ডিপেনডেন্সি যুক্ত করুন:
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
<version>3.17.0</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-http</artifactId>
<version>3.17.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
FileRouteBuilder.java ক্লাস তৈরি করুন, যেখানে ফাইল পরিচালনার রাউট তৈরি করবেন:
import org.apache.camel.builder.RouteBuilder;
import org.springframework.stereotype.Component;
@Component
public class FileRouteBuilder extends RouteBuilder {
@Override
public void configure() {
// Upload file route
from("file:input?noop=true") // Read files from input directory
.to("file:output"); // Move files to output directory
// Delete file route
from("direct:deleteFile")
.process(exchange -> {
String fileName = exchange.getIn().getBody(String.class);
// Logic to delete the file
java.nio.file.Files.deleteIfExists(java.nio.file.Paths.get("output/" + fileName));
});
// List files route
from("direct:listFiles")
.process(exchange -> {
// Logic to list files in the output directory
java.io.File dir = new java.io.File("output");
String[] files = dir.list();
exchange.getIn().setBody(files);
});
}
}
REST API তৈরি করতে, FileController.java
ক্লাস তৈরি করুন:
import org.apache.camel.ProducerTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/files")
public class FileController {
@Autowired
private ProducerTemplate producerTemplate;
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
// Logic to save the file
// Example: save the file in the input directory
try {
file.transferTo(new File("input/" + file.getOriginalFilename()));
return "File uploaded successfully";
} catch (IOException e) {
return "File upload failed";
}
}
@DeleteMapping("/{fileName}")
public String deleteFile(@PathVariable String fileName) {
producerTemplate.sendBody("direct:deleteFile", fileName);
return "File deleted successfully";
}
@GetMapping("/list")
public String[] listFiles() {
return producerTemplate.requestBody("direct:listFiles", null, String[].class);
}
}
অ্যাপ্লিকেশন চালানোর জন্য একটি FileManagerApplication.java
ক্লাস তৈরি করুন:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class FileManagerApplication {
public static void main(String[] args) {
SpringApplication.run(FileManagerApplication.class, args);
}
}
অ্যাপ্লিকেশন চালানোর পর, আপনি HTTP POST, GET, এবং DELETE রিকোয়েস্ট ব্যবহার করে ফাইল আপলোড, তালিকা এবং মুছে ফেলার কার্যক্রম পরীক্ষা করতে পারেন।
POST /api/files/upload
এ ফাইল আপলোড করুন।GET /api/files/list
এ ফাইলের তালিকা দেখুন।DELETE /api/files/{fileName}
এ ফাইল মুছুন।এই ফাইল ম্যানেজমেন্ট সিস্টেমটি Apache Camel ব্যবহার করে একটি সাধারণ এবং কার্যকরী উদাহরণ। আপনি এটি ব্যবহার করে ফাইল পরিচালনার জন্য আপনার প্রয়োজনীয় বৈশিষ্ট্যগুলি তৈরি করতে পারবেন এবং এর মাধ্যমে Camel-এর বিভিন্ন ফিচার সম্পর্কে ধারণা লাভ করবেন।
এই প্রকল্পটি আপনার প্রকল্পগুলিতে আরও উন্নত কার্যকারিতা যোগ করার জন্য ভিত্তি হিসেবে কাজ করতে পারে।
আরও দেখুন...